12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using UnityEngine;
- using System.Reflection;
- using System.Collections.Generic;
- namespace ExternPropertyAttributes.Editor
- {
- public static class ButtonUtility
- {
- public static bool IsEnabled(Object target, MethodInfo method)
- {
- EnableIfAttributeBase enableIfAttribute = method.GetCustomAttribute<EnableIfAttributeBase>();
- if (enableIfAttribute == null)
- {
- return true;
- }
- List<bool> conditionValues = PropertyUtility.GetConditionValues(target, enableIfAttribute.Conditions);
- if (conditionValues.Count > 0)
- {
- bool enabled = PropertyUtility.GetConditionsFlag(conditionValues, enableIfAttribute.ConditionOperator, enableIfAttribute.Inverted);
- return enabled;
- }
- else
- {
- string message = enableIfAttribute.GetType().Name + " needs a valid boolean condition field, property or method name to work";
- Debug.LogWarning(message, target);
- return false;
- }
- }
- public static bool IsVisible(Object target, MethodInfo method)
- {
- ShowIfAttributeBase showIfAttribute = method.GetCustomAttribute<ShowIfAttributeBase>();
- if (showIfAttribute == null)
- {
- return true;
- }
- List<bool> conditionValues = PropertyUtility.GetConditionValues(target, showIfAttribute.Conditions);
- if (conditionValues.Count > 0)
- {
- bool enabled = PropertyUtility.GetConditionsFlag(conditionValues, showIfAttribute.ConditionOperator, showIfAttribute.Inverted);
- return enabled;
- }
- else
- {
- string message = showIfAttribute.GetType().Name + " needs a valid boolean condition field, property or method name to work";
- Debug.LogWarning(message, target);
- return false;
- }
- }
- }
- }
|